CC = gcc
CFLAGS = -Wall -fpic -coverage -lm -std=gnu99
DOMDIR = ./dominion/


all: t
	
rngs.o: $(DOMDIR)rngs.h $(DOMDIR)rngs.c
	$(CC) -c $(DOMDIR)rngs.c -o $(DOMDIR)$@ -g  $(CFLAGS)

dominion.o: $(DOMDIR)dominion.h $(DOMDIR)dominion.c $(DOMDIR)rngs.o
	$(CC) -c $(DOMDIR)dominion.c -o $(DOMDIR)dominion.o -g  $(CFLAGS)

functiontests.o: functiontests.h functiontests.c $(DOMDIR)dominion.o
	$(CC) -c functiontests.c  -g $(CFLAGS) -lcunit

card_data.o: card_data.h card_data.c
	$(CC) -c card_data.c $(CFLAGS)

cardtests.o: cardtests.h cardtests.c dominion.o
	$(CC) -c cardtests.c  -g $(CFLAGS) -lcunit

utils2.o: utils2.h utils2.c
	$(CC) -c utils2.c $(DOMDIR)dominion.o -g $(CFLAGS)

t: t.c functiontests.o cardtests.o card_data.o utils2.o
	$(CC) -o $@ -g  t.c functiontests.o cardtests.o $(DOMDIR)dominion.o card_data.o utils2.o $(DOMDIR)rngs.o $(CFLAGS) -lcunit

unittest: t
	@echo 
	@echo Running Unit Tests for Dominion Game -- Team 7
	@echo
	@./t
	@echo 
	@echo
	@echo Coverage information in unittest_coverage.out
	@gcov -b dominion.c >> unittest_coverage.out


systemtest:
	gcc -c $(DOMDIR)rngs.c -g  $(CFLAGS)
	gcc -c $(DOMDIR)dominion.c -g  $(CFLAGS)
	gcc -c $(DOMDIR)interface.c -g  $(CFLAGS)
	gcc -o testdominion testdominion.c -g dominion.o rngs.o interface.o $(CFLAGS)
	./testdominion 1
	echo "Test ran 1 times." >> testdominion.out
	gcov -b dominion.c >> testdominion.out

clean:
	-rm -f *.o *.gcno *.gcda t  *.gcov *.out
	-rm -f $(DOMDIR)*.o $(DOMDIR)*.gcno $(DOMDIR)*.gcda
	-rm -f *.xml
	-rm -f testdominion
	